The same way you’d speed up any other code. Find out which tests take the most time, and see how they can be optimized.
There are plenty of operations that can be slow, and if you do them 3000 times, it adds up. Sometimes, reusing data between tests is worthwhile (even if you’re not supposed to do that in unit tests, it may be necessary if that’s what it takes to get your tests to run at an acceptable speed).
Time your tests. Usually, 90% of them will execute almost instantly, and the last 10% will take almost all the time. Find those 10% and see what they’re doing.
Run the code through a profiler, and note where the time is being spent. Guessing is a waste of time. What you think the test runner is doing is meaningless. Instead of guessing, find out what it is doing. Then you’ll know how to speed it up.