They're free from your local mall parking lot. Just bring a screwdriver or whatever you use and drive around until you find one in great shape and the correct color. Make sure no one is looking and pop it off and you're good to go.
Salvage yards, in my area, would pretty much out of the question. The sun here in S. Florida is hard on plastic. I would be purchasing two caps in the same condition as ones that broke.