It's called 3-way handshake, so it is transmitted three times: SYN -> SYN/ACK -> ACK. The minimum time required is two times the round-trip time (RTT).
In your capture, the only transmission time is between SYN and SYN/ACK. The successive ACK is the reaction to the received SYN/ACK. The socket is established on this side and the local node fires away with GET.
On the listener (server) side, this would look like
- SYN received
- very small delay (local stack overhead)
- SYN/ACK sent
- longer delay (RTT + remote stack overhead)
- final ACK is received
- very small delay (remote stack & application overhead)
- GET is received