I will be arriving into Houston Intercontinental at 3.15pm. from New Zealand and have to go through immigration and customs before connecting to Savannah at 6.15p.m. Is this enough time?
Depends on a lot of factors but primarily if it's booked on a single ticket.
If it's a single ticket (say Air New Zealand and United), you are fine. You would get both boarding passes in New Zealand. You'll need to go the baggage claim, get your bags, clear immigration and customs, drop of your bags again and head through security to your departure gate. Something like this: https://www.airnewzealand.com/connecting-at-houston In the unlikely case of a majore delay or disruption, United would just put you on the next available flight.
Two different tickets is more problematic. You also need to get your luggage, clear immigration and customs and then make your way with your bags to the check in counter of the 2nd airline. There you can get rid of your bags, get a boarding pass and head through security to your gate. Three hours are typically okay for that, but if anything goes wrong, you basically lose your second flight entirely and may have to buy a complete new ticket on on the spot. Hence I personally budget at least 4 hours for this type of transfer. The consequences of missing a connection are much more severe than in the single-ticket case.
As usual: things can go a lot faster if you have higher class ticket, status with the airline, no checked luggage, Global Entry, a "good" citizenship, show up at the right time of day, etc. Things can go a lot slower for the opposites