"A: いつごろ切符を予約しましたか。 B: ３か月前です” why should it be です but not でした?
This is where the two languages slightly differ in the treatment of past/present tenses.
Think of it like, "It is (present tense, not paste tense was) true that the ticket I hold in my hands now was purchased three months ago."
ToddP's answer's actually right. using past tense でした implies something has changed.
This is something you just have to get used to until it's second nature. Just say 3か月前です and get used to it. The implication is that by using present tense, you are alluding to the current validity of the ticket you have, and you are stating the property of the ticket. Like it's beije. Like it's thick. LIke it's from JR. Like it's purchased by you. And the duration of you having it is 3 months. Getting the idea?
Because でした implies that the state (予約した) has changed.
３か月前です means: "Three months ago"
３か月前でした is a bit non-sensical. It means something like this: "I booked it three months ago, but something happened after booking, and now for some reason it is no longer three months ago that it was booked."
でした is used to convey subjective feeling, for example:
For a factual question like: "When did you book your ticket?", there is no room for the subjective feeling that でした implies.