### What do you see as an issue?

Hello!

I don't know if this is intended, but `default_args` is not an override when using nested TaskGroups.

```python
def callback_in_dag(context: Context):
    print("DAG!")

def callback_in_task_group(context: Context):
    print("Parent TaskGroup!")

with DAG(
    "some_dag_id",
    default_args={
        "on_failure_callback": callback_in_dag
    },
    schedule=None,
    start_date=datetime(2023, 1, 1)
) as dag:
    with TaskGroup(
        "parent_tg", 
        default_args={
            "on_failure_callback": callback_in_task_group
        }
    ) as parent_tg:
        with TaskGroup("child_tg") as child_tg:
            BashOperator(task_id="task_1", bash_command="nooooo_command")
```

I want the result to be "Parent TaskGroup!", but I get "DAG!".

```
[2023-05-30, 10:38:52 KST] {logging_mixin.py:137} INFO - DAG!
```

### Solving the problem

Add `_update_default_args` like [link](https://github.com/apache/airflow/blob/f6bb4746efbc6a94fa17b6c77b31d9fb17305ffc/airflow/models/baseoperator.py#L139)

#### [airflow/utils/task_group.py](https://github.com/apache/airflow/blob/main/airflow/utils/task_group.py)
```python
...
class TaskGroup(DAGNode):
    def __init__(...):
        ...
        self.default_args = copy.deepcopy(default_args or {})

        # Call 'self._update_default_args' when exists parent_group
        if parent_group is not None:
            self._update_default_args(parent_group)
        ...
    ...
    # Update self.default_args
    def _update_default_args(parent_group: TaskGroup):
        if parent_group.default_args:
            self.default_args.update(parent_group.default_args) 
...
```

### Anything else

_No response_

### Are you willing to submit PR?

- [X] Yes I am willing to submit a PR!

### Code of Conduct

- [X] I agree to follow this project's [Code of Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)

"""TaskGroup for grouping related Tasks"""
        return task_3(task_2(task_1(value)))
    execution_date = pendulum.parse("20201109")
    with DAG(dag_id="example_task_group_decorator_mix", start_date=execution_date, tags=["example"]) as dag:
        t_start = PythonOperator(task_id="task_start", python_callable=task_start, dag=dag)
        with TaskGroup("section_1", tooltip="section_1") as section_1:
            sec_2 = section_2(t_start.output)
            task_s1 = EmptyOperator(task_id="task_1")
            task_s2 = BashOperator(task_id="task_2", bash_command="echo 1")
            task_s3 = EmptyOperator(task_id="task_3")
            sec_2.set_downstream(task_s1)
            task_s1 >> [task_s2, task_s3]
        t_end = PythonOperator(task_id="task_end", python_callable=task_end, dag=dag)
        t_start >> section_1 >> t_end
    node_ids = {
        "id": None,
        "children": [
            {
                "id": "section_1",
                "children": [
                    {
                        "id": "section_1.section_2",
                        "children": [
                            {"id": "section_1.section_2.task_1"},
                            {"id": "section_1.section_2.task_2"},
                            {"id": "section_1.section_2.task_3"},
                        ],
                    },