In general, 3ms is a "long" time for things like temperature computations. I'm guessing you're just going to be adding temperature readings to a running sum and taking the average? That's very little work compared to what 3ms affords you.
See the BlinkWithoutDelay example sketch for how to make things happen at precise intervals.
Beyond that, you can dig into interrupt-based processing for even finer control. But I doubt that will be necessary for your application.
The Rugged Motor Driver
: two H-bridges, more power than an L298, fully protected