Да, можно, если они кратковременные.
Идея асинхронности в питоне проста как две копейки: асинхронные функции выполняются в рамках однопоточного рабочего цикла (loop), и умеют сказать ему "когда вот эта операция закончится - продолжи выполнять меня. А пока займись чем-нибудь" (await-вызов).
Соответственно, пока асинхронная функция выполняет синхронный код, т.е. код между await'ами (ну и началом/завершением в т.ч.), рабочий цикл не может выполнять никакую другую асинхронную функцию. Это плюс, так как не приходится беспокоиться из-за одновременного доступа, как при работе через потоки. Но минус в том, что долгие синхронные операции не позволяют циклу выполнять другие асинхронные функции, т.е. реагировать на внешние события.
Отсюда вывод: если твой синхронный код выполняется быстро - его можно вызывать из асинхронных функций без проблем. Если это длительный (блокирующий) код - его либо нужно заменить асинхронным, либо засунуть в отдельный поток с помощью run_in_executor(), либо на худой конец разбавить вызовами await asyncio.sleep(0). Такой вызов просто возвращает управление в рабочий цикл, чтобы тот мог разобраться с текущими делами, а потом вернуться и продолжить выполнение этой асинхронной функции.
Обращения к БД на малых объёмах и малых нагрузках не слишком длительны. Если очень надо, есть асинхронный aiosqlite.