If the websites on all three machines are identical, then pf can load balance with a simple
rdr rule. For an example see
http://www.openbsd.dk/faq/pf/pools.html#incoming.
I haven't got a chance to play with
relayd(8), so I am not sure whether
relayd could help in your situation. See the example configuration files in
relayd.conf(5) so you can decide