В чем проблема?
когда вы создаете таблицу вот здесь
cursor.execute("""CREATE TABLE IF NOT EXISTS users (
        id INTEGER,
        cash INTEGER,
        date TEXT,
        prel TEXT
    )""")  вы создаете таблицу с 4 колонками.
Везде где вы вставляете в таблицу данные например
cursor.execute(f"INSERT INTO users VALUES ({id}, {money}, '{str(datetime.date.today())}')") вы вставляет ряд с тремя переменными id, money и сегодняшнюю дату, а где четвертая переменная? которая при создании таблицы называется prel TEXT И такое не в одном месте, вместо 4 преременных ожидаемых базой вы предоставили только 3.
насколько я понял, ошибка на этой строке
cursor.execute(f"INSERT INTO users VALUES ({id}, {money}, '{str(datetime.date.today())}')")
Ошибка гласит: таблица users имеет 4 колонки но было внесено 3 значения. - т.е. просит четвертое значение.

я не понял за что отвечает колонка prel, но походу в данном случае она не нужна.
Если не заполняешь значение, то ставь NULL, т.е. ничего.

cursor.execute(f"INSERT INTO users VALUES ({id}, {money}, '{str(datetime.date.today())}', NULL)")

или просто в запросе указать какие значения ты заносишь

cursor.execute(f"INSERT INTO users (`id`, `cash`, `date`) VALUES ({id}, {money}, '{str(datetime.date.today())}')")
тогда все остальные значения выставляться как NULL