If you have only one ip on each subnet, you can do it combining forces with you router(s). ;D
see (http://forum.pfsense.org/index.php/topic,35281.msg200865.html#msg200865) for a detailed explanation of how to do this.
after nat on router, at pfsense:
You can't have two subnets on same interface, you need to create a interface for each subnet.
the minimun amount of ips for it will be 4 on the same subnet.
1 for the router
1 for pfsense1
1 for pfsense2
1 to be published as a carp ip between two pfsenses. (this can be as much as you need 1, 2,…10 ips)
If you plan to have each pfsense pluged into different switches, you will must have a dedicated interface between both for sync.
My suggestion is to plug all interfaces of each firewall in only one swtich(using vlans), this prevents some carp mistakes between master and slave when not all interfaces are offline.
FIREWALL1 <-> SWITCH 1
FIREWALL2 <-> SWITCH 2
FIREWALL1 <-CROSSOVER-> FIREWALL2
If you have two gigabit interfaces on each firewall you can do everything. one for sync and other with a lot of vlans.
att,
Marcello Coutinho