Nice is a great base for visiting other Riviera spots by public transportation, especially if you're interested in the hill towns that require buses (such as Eze, St-Paul-de-Vence and Vence). Any other single town on the train line could also work if you're only planning visits to other coastal locations, though of course travel times would vary. What I wouldn't do is split up the 3 nights, and a stop in Aix-en-Provence (4 hours) or Avignon (at least 3 hours) would really only give you about a half a day in Provence by the time you got settled into your hotel--certainly not worth it.
You can check the rail schedules on the Deutsche Bahn website, which I find just a bit easier to use than SNCF. You'll need the latter for prices and to buy your onward ticket to Paris. You'll save a lot of money on that ticket by buying early, but the promotional tickets are non-refundable/non-changeable.
You don't need to buy local Riviera tickets ahead of time (no price advantage), but you may run into back-ups at the ticket-vending machines at the Nice-Ville station. Allow extra time there unless you're certain enough of your plans to buy the tickets the evening before.
I took a quick look at booking.com and found that the highly-rated Hotel Villa Rosa is shown as having a double room available for the nights of May 23 - 25 at a total price of $771 for all 3 nights. I don't know anything about the property; I haven't read the reviews or looked at the pictures. There are other options as well.
Edited to add: You might also consider Antibes. I only day-tripped there, but I liked it, and several other posters also have made positive comments about the town. It's farther west than Nice so the hotel rates probably aren't quite as affected by the race. I do see some availability. Avignon is less than 1/2 hour from Nice by train. You can get all the way to Menton, which is practically on the Italian border, in as little as an hour.
Do beware of pickpockets on the Riviera trains. They are active even when there isn't a big-time event going on.