### Summary

When validating `argument_spec` for a role the error message always suggest `Supported parameters include: <list of main options>` even if the error is for a missing sub-option.

### Issue Type

Bug Report

### Component Name

/lib/ansible/module_utils/common/arg_spec.py

### Ansible Version

```console
ansible [core 2.11.4] 
  config file = None
  configured module search path = ['/home/holbech/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/local/lib/python3.8/dist-packages/ansible
  ansible collection location = /home/holbech/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/local/bin/ansible
  python version = 3.8.10 (default, Jun  2 2021, 10:49:15) [GCC 9.4.0]
  jinja version = 2.11.3
  libyaml = True
```


### Configuration

```console
None
```


### OS / Environment

Ubuntu 20.04

### Steps to Reproduce

<!--- Paste example playbooks or commands between quotes below -->
Input Data:
```yaml
access_lists:
- name: ACL-TEST
  sequence_numbers:
  - action: permit ip 4.5.6.0/23 1.2.3.0/24
    sequence: 10
  - ac_typo_ion: deny tcp any eq 80 any
    sequence: 5
```

Argument_spec
```yaml (paste below)
argument_specs:
  main:
    options:
      access_lists:
        description: IP Extended Access-Lists
        type: list
        elements: dict
        options:
          name:
            type: str
            description: Access-List Name
            unique: true
            required: true
          sequence_numbers:
            type: list
            description: List of ACL Lines
            elements: dict
            required: true
            options:
              sequence:
                type: int
                description: Sequence ID
                unique: true
                required: true
              action:
                type: str
                description: Action as string
                required: true
      ipv6_standard_access_lists:
         # same as above but removed here for brevity
```


### Expected Results

Since the missing required key in the input data is under the sub-option `sequence_numbers` the error message should list the "supported parameters" from this option - in this case `sequence, action`. Instead it only listed the main options in the argument_spec.

### Actual Results

```console
TASK [arista.avd.eos_cli_config_gen : Validating arguments against arg spec 'main'] ***
task path: /home/holbech/ansible-avd/ansible_collections/arista/avd/molecule/eos_cli_config_gen/converge.yml:2
fatal: [access-lists -> 127.0.0.1]: FAILED! => {
    "argument_errors": [
        "missing required arguments: action found in access_lists -> sequence_numbers",
        "access_lists.sequence_numbers.ac_typo_ion. Supported parameters include: ipv6_standard_access_lists, access_lists."
    ],
    "argument_spec_data": {
        "access_lists": {
            "description": "IP Extended Access-Lists",
            "elements": "dict",
            "options": {
                "name": {
                    "description": "Access-List Name",
                    "required": true,
                    "type": "str",
                    "unique": true
                },
                "sequence_numbers": {
                    "description": "List of ACL Lines",
                    "elements": "dict",
                    "options": {
                        "action": {
                            "description": "Action as string",
                            "required": true,
                            "type": "str"
                        },
                        "sequence": {
                            "description": "Sequence ID",
                            "required": true,
                            "type": "int",
                            "unique": true
                        }
                    },
                    "required": true,
                    "type": "list"
                }
            },
            "type": "list"
        },
        "ipv6_standard_access_lists": {
            "description": "IPv6 Standard Access-lists",
            "elements": "dict",
            "options": {
                "name": {
                    "description": "Access-list Name",
                    "required": true,
                    "type": "str",
                    "unique": true
                },
                "sequence_numbers": {
                    "elements": "dict",
                    "options": {
                        "action": {
                            "description": "Action as string",
                            "required": true,
                            "type": "str"
                        },
                        "sequence": {
                            "description": "Sequence ID",
                            "required": true,
                            "type": "int",
                            "unique": true
                        }
                    },
                    "required": true,
                    "type": "list"
                }
            },
            "type": "list"
        }
    },
    "changed": false,
    "msg": "Validation of arguments failed:\nmissing required arguments: action found in access_lists -> sequence_numbers\naccess_lists.sequence_numbers.ac_typo_ion. Supported parameters include: ipv6_standard_access_lists, access_lists.",
    "validate_args_context": {
        "argument_spec_name": "main",
        "name": "eos_cli_config_gen",
        "path": "/home/holbech/ansible-avd/ansible_collections/arista/avd/roles/eos_cli_config_gen",
        "type": "role"
    }
}
```


### Code of Conduct

- [X] I agree to follow the Ansible Code of Conduct
"""Validate that parameter types match the type in the argument spec.
    Determine the appropriate type checker function and run each
    parameter value through that function. All error messages from type checker
    functions are returned. If any parameter fails to validate, it will not
    be in the returned parameters.
    :arg argument_spec: Argument spec
    :type argument_spec: dict
    :arg parameters: Parameters
    :type parameters: dict
    :kwarg prefix: Name of the parent key that contains the spec. Used in the error message
    :type prefix: str
    :kwarg options_context: List of contexts?
    :type options_context: list
    :returns: Two item tuple containing validated and coerced parameters
              and a list of any errors that were encountered.
    :rtype: tuple
    """
    if errors is None:
        errors = AnsibleValidationErrorMultiple()
    for param, spec in argument_spec.items():
        if param not in parameters:
            continue
        value = parameters[param]
        if value is None: