We NEVER book in advanced unless it is a National Park or somesuch. If we want to stay at a commercial camp we call and hour or so before we get there to get a spot. That failed once during our 7500 mile trip and that was right outside West Yellowstone. And we got our second call there.
But with three weeks and leaving from VA your choices are limited if you really only have three weeks. I suggest CO, meaning the Rocky Mountain NP and Great Sand Dunes with an outside possibility of Mesa Verde. You just don't have time for more unless you plan to spend two weeks driving and one week doing.
As for temperature, remember that north and altitude equals cooler summer temps. AZ and southern UT equal HOT with some high altitude exceptions. CO, MT, ID and the Dakotas are cooler.