Ok, I figured out what was the issue. I have firewall and forgot to add the new pihole ip address. So I added in the new pihole IP address in the policy but still the other vlans could not resolve the domain names if I only have the unbound as upstream DNS server. Other vlans can only browse the internet if I tick any of the public DNS - Cloudflare, Google, etc. Looks like the unbound only serves the eth0 network.