I think on SX-2000 this can be done !
As I said before I never worked with 3300 so I don't know there, but if at 3300 is the Form named : "Node Identity Assignment" (NO) like at SX-2000 I think this can be done at 3300 too. Maybe Mr. OBTW can say if this is posible at 3300 too.
The second condition is of course that your provider routes all 10 digits or at least the last digits that can make a diference between the toll free numbers - in your example at least the last 8 digits.
There are much more particulary conditions especially your internal and external plan number and how many normal DID range number (not toll free) with the same first 6 digits you have.
The idea is that we can make the diference from the 2 toll free numbers in your example by absorbing diferent amout of digits from behind and remaining with maximum 7 digits so that we cam internaly route them.
To understand exactly I continue your example with the supose that you have the only 2 toll free numbers (is posibly with 4 too) and only one DID range of 1000 numbers with the same 6 digits in front , example 343 545 xxx .
1) Ask your provider to route all 10 digits to you.
2) In the "Trunk Service" form for the DID trunks you write 0 in digits to absorb.
3) In "Node Identity Assigment" (NO) form you write at "Local Node Indentifier" the folowings lines:
343545
800397
88839
This digits are absorbed from the front of numbers. The inconvenient is that they will be absorbed in all DID links not only in that one !
So the 800 397 8888 became 8888 number and 888 397 8888 number became 78888 number.
4) Program sistem speed calls or hunt groups for 8888 and 78888 to route to the numbers you want if you want that the stations remain with normal internal numbers too.
You have to check that the numbers 8888 and 78888 are not conflicting with others numbers or codes or ARS exactly .
In the NO form you can have only 5 Local Nodes Indentifiers with maximum 7 digits each. In your example is enough but I don't know in your real case if this is enough.