You can't put a GFCI receptacle inside the "trap access opening" because it has to be accessible so you can reset it. But that's alright; GFCIs can sit anywhere and protect a load "down the line" from it.
A good reason to do that is if the GFCI is too close, its protection is not total. If the GFCI's Line terminals get wet, that can still carry an electric shock to you even if the GFCI trips.You're actually better off installing a GFCI far away from the thing you're protecting.
One possible place is right in the service panel using a GFCI breaker. If it's a dedicated circuit that goes only to the hot tub, that makes a lot of sense.
12/2 cable is fine for the 20A motor circuit. You didn't say what current the heater is; if it's 20A then #12 is fine. If it's 30A you need #10.
If the heater is 120V-only or 240V-only, then /2 cable will suffice. If it is 240/120 with neutral (which would surprise me), you need /3. You also need a GFCI on the heater. If it's a 240V heater, that is only possible as a GFCI breaker.
You definitely want the GFCI protection before the timer. First to protect you while you're operating it, and second because cutting power to a GFCI is bad for the GFCI and will cause nuisance trips.
The installation instructions for the jacuzzi will tell you officially what cable and breaker sizes to use. Those instructions are approved by Underwriter's Labratories as part of its UL Listing. You must follow them because the validity of the UL listing depends on following the instructions. (Code, NEC 110.3B).