I pay for one domain name in Cloudflare (e.g. awesomedomain.com), and have a single "A" record pointing to the public IP of my server, and a single "CNAME" record with a value of * that points to awesomedomain.com.
That way, any subdomain gets directed to the server, and then you setup Nginx Proxy Manager to listen for certain subdomains and where to proxy them. No need to manage any further DNS records in Cloudflare, and any changes made on the proxy don't need any wait time for DNS records to propagate.
Nginx Proxy Manager also handles automatic SSL certs through Let's Encrypt - I really can't recommend it enough.
I highly recommend setting up Nginx Proxy Manager and using it as a reverse proxy.
I have lots of services, but using a reverse proxy means I only have to expose 2 ports (80 & 443) and then I can serve whatever I want, like Plex, over https without a relay.