Функция asyncio.gather(*coros)  одновременно запускает все awaitable-объекты, переданные как последовательность, и передает для запуска в цикле событий.  Функция asyncio.gather() является awaitable-объектом и запускается с оператором await. Если вы передаете функции gather() сопрограмму, то она будет автоматически назначена как задача

import asyncio
import random

async def two(x):
    await asyncio.sleep(random.randint(1, 3))
    return print(x)

async def one(x):
    await asyncio.sleep(random.randint(1, 3))
    return print(x)

async def main():
    for x in range(5):
        await asyncio.gather(one(1), two(2))

asyncio.run(main())