We just did this last summer. Prague. Park City Inn (Carlson Property). Two blocks or so to the tram. Next door is a Tesco market. Great location to see the city. Inexpensive too.
Budapest. Look for an AirBnB near Linzt Ferenc Square. Great location to see everything either by foot or by public transportation. Good dentist nearby too. Wife had veneers put in for $600. Would have cost 5X that amount in the US. Dentist was highly recommended and very accommodating to our schedule.
Vienna was a bit harder. Stayed at the Hilton Danube. Metro is fairly close but it takes 15 mins or so to get to where the action is. We used Hilton points and got the hotel for $35/night.
The train from Budapest to Vienna to Prague is very nice. Fast and comfortable.