When your service provider uses the same function code as FreePBX, that sequence will always be intercepted by the PBX and never make it to the provider. One solution is to create a Custom Extension. In /etc/asterisk/extensions_custom.conf add:

exten=> *86,1,Answer
exten=> *86,n,Dial(SIP/voipms/*97)

Where:

The go into Admin | Custom Extensions and add a new entry.

So, when a provider is using *97 for their voicemail you can now dial *86 to access it. *97 will still access the FreePBX voicemail.

An Alternate Method

Use the prepend field in a dial pattern for the outbound route. In this case, FreePBX sees the *86, strips it off and prepends *97.