### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

My SQS queue is not receiving notifications from SNS when they both have fifo enabled:

```
#Create sqs
aws --endpoint-url=http://localhost:4566 sqs create-queue --queue-name onexlab.fifo --attributes FifoQueue=true
#create sns
aws --endpoint-url=http://localhost:4566 sns create-topic --name onexlab-sns.fifo --attributes FifoTopic=true,ContentBasedDeduplication=true
#create subscription
aws --endpoint-url=http://localhost:4566 sns subscribe --topic-arn arn:aws:sns:us-east-1:000000000000:onexlab-sns.fifo --protocol sqs --notification-endpoint  arn:aws:sqs:us-east-1:000000000000:onexlab.fifo
#publish messasge
aws --endpoint-url=http://localhost:4566 sns publish  --topic-arn arn:aws:sns:us-east-1:000000000000:onexlab-sns.fifo --message 'Welcome to Onexlab!' --message-group-id "test"
#check messages
aws --endpoint-url=http://localhost:4566 sqs receive-message --queue-url http://localhost:4566/000000000000/onexlab.fifo
```

No messages on the SQS queue.

### Expected Behavior

Expect the sqs queue to have the message.

### How are you starting LocalStack?

With a docker-compose file

### Steps To Reproduce

#### How are you starting localstack (e.g., `bin/localstack` command, arguments, or `docker-compose.yml`)

    docker-compose up

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)
``` 
#Create sqs
aws --endpoint-url=http://localhost:4566 sqs create-queue --queue-name onexlab.fifo --attributes FifoQueue=true
#create sns
aws --endpoint-url=http://localhost:4566 sns create-topic --name onexlab-sns.fifo --attributes FifoTopic=true,ContentBasedDeduplication=true
#create subscription
aws --endpoint-url=http://localhost:4566 sns subscribe --topic-arn arn:aws:sns:us-east-1:000000000000:onexlab-sns.fifo --protocol sqs --notification-endpoint  arn:aws:sqs:us-east-1:000000000000:onexlab.fifo
#publish messasge
aws --endpoint-url=http://localhost:4566 sns publish  --topic-arn arn:aws:sns:us-east-1:000000000000:onexlab-sns.fifo --message 'Welcome to Onexlab!' --message-group-id "test"
#check messages
aws --endpoint-url=http://localhost:4566 sqs receive-message --queue-url http://localhost:4566/000000000000/onexlab.fifo
```


### Environment

```markdown
- OS: Mac os

- LocalStack:latest

version: '3.0'

services:
  localstack:
    image: localstack/localstack:latest
    environment: 
      - AWS_DEFAULT_REGION=us-east-1
      - EDGE_PORT=4566
      - SERVICES=sqs,sns
    ports:
      - '4566-4597:4566-4597'
    volumes:
      - "${TMPDIR:-/lib/localstack}:/lib/localstack"
      - "/var/run/docker.sock:/var/run/docker.sock"
```


### Anything else?

_No response_
"""
    The TopicPublisher is responsible for publishing SNS messages to a topic's subscription.
    This is the base class implementing the basic logic.
    Each subclass will need to implement `_publish` using the subscription's protocol logic and client.
    Subclasses can override `prepare_message` if the format of the message is different.
    """
    def publish(self, context: SnsPublishContext, subscriber: SnsSubscription):
        """
        This function wraps the underlying call to the actual publishing. This allows us to catch any uncaught
        exception and log it properly. This method is passed to the ThreadPoolExecutor, which would swallow the
        exception. This is a convenient way of doing it, but not something the abstract class should take care.
        Discussion here: https://github.com/localstack/localstack/pull/7267#discussion_r1056873437
        # TODO: move this out of the base class
        :param context: the SnsPublishContext created by the caller, containing the necessary data to publish the
        message
        :param subscriber: the subscription data
        :return:
        """
        try:
            self._publish(context=context, subscriber=subscriber)
        except Exception:
            LOG.exception(
                "An internal error occurred while trying to send the SNS message %s",
                context.message,
            )
            return
    def _publish(self, context: SnsPublishContext, subscriber: SnsSubscription):