Проблема в том, что вы создаете только один тег, а затем неоднократно модифицируете его атрибут string
вместо создания трех отдельных тегов и вставки всех из них.Вот почему он добавляет только один тег и почему конечный результат является последним из строк.
Чтобы сделать то, что вы хотите, используйте цикл for и создайте новый тег для каждой из строк, например:
headTag = soup.find_all('h1', text='Attendance List')
for s in ["Today", "Weekly", "Monthly"]:
aTag = soup.new_tag('a')
aTag['class'] = "btn btn-default pull-right"
aTag.string = s
headTag[0].insert_before(aTag)