Outbound rules are just that...rules for outbound calls. You can't use them to route internally. If you are using Bridge trunks between locations, then that is considered an outgoing call.
You could use a loop trunk, send the call out, then back in, but that will use two licences for each internal call (I believe), not really practical. I can dig up the info for setting that up, if you are really interested.
Have a look at this, on creating "speed dial" rules. Keep in mind that, obviously, you can't use any number that is in conflict with a local extension number, as a dialled number would route to the extension before reaching the rules.
http://www.3cx.com/blog/voip-howto/speed-dials-using-3cx-outbound-rules/
Some VoIP sets, and ATAs, have internal dial-plans, and can be configured to do digit substitution. So, dialling , say, 134, could be sent to the PBX as 2234. But, all of that would require you having compatible sets.
Depending on how many phones you have at each location, less than 100, you could still get away with a four digit system.
You could also have 3 digits internally, and only require more, when calling outside, to another office.