The group needs to be created as a persistent group so that your connection doesn't drop. You should be able to do that in the autonomous GO scenario with
p2p_group_add persistent
.
In the negotiated GO scenario try:
p2p_connect <peer device address> <pbc|pin|PIN#|p2ps> [display|keypad|p2ps] persistent go_intent=15
See the wpa_supplicant README-P2P for further details: https://w1.fi/cgit/hostap/plain/wpa_supplicant/README-P2P.