### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

I got the following unexpected error when trying to delete a policy that does not exist.

```log
self = <botocore.parsers.QueryParser object at 0x7fa3d2cd2820>
xml_string = b'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\n<title>500 Internal Server Error</title>\n<h1>Internal Serv...nd was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>\n'

    def _parse_xml_string_to_dom(self, xml_string):
        try:
            parser = ETree.XMLParser(
                target=ETree.TreeBuilder(),
                encoding=self.DEFAULT_ENCODING)
            parser.feed(xml_string)
            root = parser.close()
        except XMLParseError as e:
>           raise ResponseParserError(
                "Unable to parse response (%s), "
                "invalid XML received. Further retries may succeed:\n%s" %
                (e, xml_string))
E           botocore.parsers.ResponseParserError: Unable to parse response (syntax error: line 1, column 54), invalid XML received. Further retries may succeed:
E           b'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\n<title>500 Internal Server Error</title>\n<h1>Internal Server Error</h1>\n<p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>\n'
```

### Expected Behavior

I expect a `ClientError` with the message code as `NoSuchEntity`

### How are you starting LocalStack?

With a `docker run` command

### Steps To Reproduce

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

`docker run --rm -it -p 4566:4566 -p 4571:4571 localstack/localstack`

#### Client commands (e.g., AWS SDK code snippet, or sequence of "awslocal" commands)

Im using boto3 with the following init:

```python
client = boto3.client(
            'iam',
            region_name="us-east-1",
            endpoint_url="http://localstack:4566",
            aws_access_key_id="dummy_id",
            aws_secret_access_key="dummy_key")
```

To reproduce the error try to delete a non existent IAM policy:

```python
import boto3
from botocore.exceptions import ClientError

client = boto3.client(
            'iam',
            region_name="us-east-1",
            endpoint_url="http://localstack:4566",
            aws_access_key_id="dummy_id",
            aws_secret_access_key="dummy_key")

try:
    client.delete_policy(PolicyArn="arn:aws:iam::000000000000:policy/non-existent-policy")
except Exception as ex:
    if isinstance(ex, ClientError):
        print("expected")
    else:
        print("not expected")
```

*Output*

```log
not expected
```

*Error*

```log
Unable to parse response (syntax error: line 1, column 54), invalid XML received. Further retries may succeed:
b'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">\n<title>500 Internal Server Error</title>\n<h1>Internal Server Error</h1>\n<p>The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.</p>\n'
```

### Environment

```markdown
- OS: MacOS BigSur 11.4
- LocalStack: latest
- Docker: v20.10.7
```


### Anything else?

_No response_
self, name, default_version_id=None, description=None, document=None, **kwargs
    ):
        policy_init_orig(self, name, default_version_id, description, document, **kwargs)
        self.document = document
    Policy.__init__ = policy__init__
    IamResponse.simulate_principal_policy = iam_response_simulate_principal_policy
    def iam_response_list_roles(self):