Trying to call function not working

-- My function is located in a separate module
[3] = function(gui, frame)
		frame:TweenPosition(UDim2.new(0.5, 0, 1.5, 0), Enum.EasingDirection.In, Enum.EasingStyle.Back, 0.5, true)

		local FurnitureStoreClone = FurnitureStore:Clone()
		FurnitureStoreClone.Parent = gui
				
		local FurnitureStoreControl = require(FurnitureStoreClone.Frame.FurnitureStoreControl)
				
		FurnitureStoreClone.Frame.Close.Activated:Wait()
				
		frame:TweenPosition(UDim2.new(0.5, 0, 0.95, 0), Enum.EasingDirection.Out, Enum.EasingStyle.Back, 0.5, true)
	end,

Separate code that errors

DialogueData[NPC].Messages[v.Responses[FirstOption]](PlayerGui, Frame)

[attempt to index a function value]
printing

print(DialogueData[NPC].Messages[v.Responses[FirstOption]]) -- prints 3

So it should be firing the function

If DialogueData[NPC].Messages[v.Responses[FirstOption]] prints out 3, then that means you are basically doing the following:

3(PlayerGui, Frame)

You need to make sure that DialogueData[NPC].Messages[v.Responses[FirstOption]] is printing out a function instead of a number. However you set up your module, you need to make sure you are navigating to the proper location in the array for it to return the function.