I vacationed in Andalucia during Xmas and New Years a few years ago and this is one area where I think having a car is a great advantage, depending on what your plans are. After flying in to Madrid and taking the AVE to Sevilla, I picked up the car at the Santa Justa train station in Sevilla and returned it 10 days later in Cordoba. No drop off charge for returning to a different location. In between, I drove to Cadiz, Gibraltar, Algeciras and took ferry to Morocco, Marbella, Malaga, Granada and finally Cordoba. There were a lot of other interesting towns in between but I won't bore you with the details. All the roads were good. Near Marbella there is a stretch where you can either take a toll highway which is faster, or a scenic route with no toll.
At that time, the cheapest rental I could find was with
www.alamo.com and so if your budget can stand it, I would definitely look into renting a car. It's just worth the flexibility and range that it gives you, having the wheels to go wherever and whenever you want, especially in a vast area like Andalucia. However, if saving money is paramount and you only want to see those 3 places you mentioned, then perhaps the bus route is the way to go. Have a nice trip!