### Is there an existing issue for this?

- [X] I have searched the existing issues

### Current Behavior

In AWS, DescribeSubnet Response returns:
```
<?xml version="1.0" encoding="UTF-8"?>\n
    <Response>
        <Errors>
            <Error>
                <Code>InvalidSubnetID.NotFound</Code>
                <Message>The subnet ID \'test\' does not exist</Message>
            </Error>
        </Errors>
    <RequestID>f6d041c1-1c96-4720-af30-77745504e2ba</RequestID>
</Response>
```

whereas localstack returns:
```
<?xml version=\'1.0\' encoding=\'utf-8\'?>\n<Errors xmlns="http://ec2.amazonaws.com/doc/2016-11-15">
    <Error>
        <Code>InvalidSubnetID.NotFound</Code>
        <Message>aaThe subnet ID \'vpc-test\' does not exist</Message>
    </Error>
    <RequestID>EADJHWMM796CI5FT10XGFMGOXIPCBAHBWINMV0HR6SKBRODGCU5J</RequestID>
</Errors>

```

### Expected Behavior

It should return correct response structure. It causes terraform to complain.

### How are you starting LocalStack?

Custom (please describe below)

### Steps To Reproduce

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

    make start

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

     awslocal ec2 describe-subnets --subnet-ids vpc-test --debug


### Environment

```markdown
- OS: M1 MacOS
- LocalStack: 1.0.2.dev
```


### Anything else?

Probably `call_moto` function in `localstack/services/moto.py` is changing the error code structure.
def _prepare_additiin_response(
        self, response: HttpResponse, operation_model: OperationModel
    ):
        response.headers["x-amzn-requestid"] = gen_amzn_requestid_long()
        response = super()._prepare_additiin_response(response, operation_model)
        return response
czer, JSONResponseSerializer):
    """
    The ``RestJSONResponseSerializer`` is responsible for the serialization of responses from services with the
    ``rest-json`` protocol.
    It combines the ``BaseRestResponseSerializer`` (for the ReST specific logic) with the ``JSONResponseSerializer``
    (for the JSOn body response serialization).
    **Experimental:** This serializer is still experimental.
    When implementing services with this serializer, some edge cases might not work out-of-the-box.
    """
    def _serialize_content_type(self, serialized: HttpResponse, shape: Shape, shape_members: dict):
        """Set Content-Type to application/json for all structured bodies."""
        payload = shape.serialization.get("payload") if shape is not None else None
        if self._has_streaming_payload(payload, shape_members):
            # Don't apply content-type to streaming bodies
            return
        has_body = serialized.data != b""
        has_content_type = self._has_header("Content-Type", serialized.headers)
        if has_body and not has_content_type:
            serialized.headers["Content-Type"] = "application/json"
class SqsResponseSerializer(QueryResponseSerializer):
    """
    Unfortunately, SQS uses a rare interpretation of the XML protocol: It uses HTML entities within XML tag text nodes.
    For example:
    - Normal XML serializers: <Message>No need to escape quotes (like this: ") with HTML entities in XML.</Message>