Add CFrame.Angle(math.rad(90), 0, 0), if the direction is still not correct, change math.rad to the other axis until it rotates correctly, also try with -90.
local function fireBullet(player, tool, po)
local rs = game:GetService('RunService')
local bullet = game:GetService('ReplicatedStorage'):FindFirstChild('Bullet'):Clone()
bullet.Position = tool:FindFirstChild('Handle').Position
bullet.Parent = workspace
bullet.CFrame = CFrame.lookAt(bullet.Position,po) * CFrame.Angles(math.rad(90),0,0)
rs.Heartbeat:Connect(function()
bullet.CFrame = bullet.CFrame * CFrame.new(1,0,0)
if not bullet then
break -- dont keep too many heartbeats
end
end)
end