The way I got it set up using Pihole and NginxProxyManager in Unraid:
- Deploy NginxProxyManager using custom: br0 with a separate IP address

- Pihole can't do wildcards unless you create
pihole/dnmasq.d/03-custom-dns.confand addaddress=/tld/npm_ip, this way *.tld goes to the stated IP.

- Now your plex.tld goes to your nginx proxy manager IP, and it needs to handle the subdomain.
NginxProxyManager can do wildcards both ways, so you can create
plex.*to go to plex IP and port. orsonarr.*that goes to your server IP and sonarr port

Please tell me if you need more details.