@kwetiaw Well, dnsmasq in proxy mode might be a different story. I have to admit that I read your initial post about using dnsmasq because you are not allowed to touch the real DHCP servers but somehow wasn’t aware of that fact when posting my answer.
From the dnsmasq man page:
For directly connected networks (ie, networks on which the machine running dnsmasq has an interface) the netmask is optional: dnsmasq will determine it from the interface configuration. For networks which receive DHCP service via a relay agent, dnsmasq cannot determine the netmask itself, so it should be specified, otherwise dnsmasq will have to guess, based on the class (A, B or C) of the network address.
So we are back to my question on how is you server (running dnsmasq) connected to those two networks?
Maybe this could work (if you have two different NICs for those two networks - please post the full output of ip a s on that server):
dhcp-range=eth0,10.3.0.1,proxy
dhcp-range=eth1,10.40.0.1,proxy