Hi Michael -
First things first? Don't count your time by DAYS. How many NIGHTS will you have in each place? It makes a difference.
2 nights usually equals 1.5 days of sightseeing,
3 nights usually equals 2.5 days.
That's because arrival day is always a partial - and a jet-lagged one at that - and any physical change of location involves packing up, checking out, getting to a station, sitting on a train, finding your next accommodation and checking in and settled. It eats time.
But how many nights to give each place depends on how those destinations 'speak' to you. 3 nights for Venice is great if that's your entry point to Italy; you'd have two FULL days to fully get over any jet-lag and do some exploring.
Whether to spend 3 nights in Florence depends on what interests you there? 3 nights only gives you 2.5 sightseeing days so that doesn't leave much for Florence itself if taking one of them to leave town. Personally? I would spend it ALL in Florence but you haven't given us any idea of what you'd like to do/see in Italy? If not big on Renaissance art, architecture and history, then maybe Florence isn't your gig whereas I could care less about wine country, especially in winter. Different strokes, and that's OK 'cause it's YOUR trip and YOUR $$$ :O)
4 night/3.5 sightseeing days for Rome is fine. You'll only scratch the surface but it's an OK amount to scratch with.